#Boa:Dialog:ABMBancos

import wx
import consultasBD
import utiles

def create(parent):
    return ABMBancos(parent)

[wxID_ABMBANCOS, wxID_ABMBANCOSBUTTON1, wxID_ABMBANCOSBUTTON2, 
 wxID_ABMBANCOSSTATICTEXT1, wxID_ABMBANCOSSTATICTEXT2, 
 wxID_ABMBANCOSSTATICTEXT3, wxID_ABMBANCOSSTATICTEXT4, 
 wxID_ABMBANCOSSTATICTEXT5, wxID_ABMBANCOSTEXTCTRL1, wxID_ABMBANCOSTEXTCTRL2, 
 wxID_ABMBANCOSTEXTCTRL3, wxID_ABMBANCOSTEXTCTRL4, wxID_ABMBANCOSTEXTCTRL5, 
] = [wx.NewId() for _init_ctrls in range(13)]

class ABMBancos(wx.Dialog):
    def _init_ctrls(self, prnt):
        # generated method, don't edit
        wx.Dialog.__init__(self, id=wxID_ABMBANCOS, name='ABMBancos',
              parent=prnt, pos=wx.Point(408, 156), size=wx.Size(388, 257),
              style=wx.DEFAULT_DIALOG_STYLE, title='ABM de Bancos')
        self.SetClientSize(wx.Size(380, 230))

        self.staticText1 = wx.StaticText(id=wxID_ABMBANCOSSTATICTEXT1,
              label='Nro.Banco', name='staticText1', parent=self,
              pos=wx.Point(16, 8), size=wx.Size(50, 13), style=0)

        self.textCtrl1 = wx.TextCtrl(id=wxID_ABMBANCOSTEXTCTRL1,
              name='textCtrl1', parent=self, pos=wx.Point(16, 24),
              size=wx.Size(64, 21), style=0, value='')
        self.textCtrl1.Bind(wx.EVT_KILL_FOCUS, self.OnKillFocus)

        self.staticText2 = wx.StaticText(id=wxID_ABMBANCOSSTATICTEXT2,
              label='Nombre', name='staticText2', parent=self, pos=wx.Point(88,
              8), size=wx.Size(37, 13), style=0)

        self.textCtrl2 = wx.TextCtrl(id=wxID_ABMBANCOSTEXTCTRL2,
              name='textCtrl2', parent=self, pos=wx.Point(88, 24),
              size=wx.Size(280, 21), style=0, value='')
        self.textCtrl2.Enable(False)
        self.textCtrl2.Bind(wx.EVT_KILL_FOCUS, self.OnMayusculas2)

        self.staticText3 = wx.StaticText(id=wxID_ABMBANCOSSTATICTEXT3,
              label='Direccion', name='staticText3', parent=self,
              pos=wx.Point(88, 48), size=wx.Size(43, 13), style=0)

        self.textCtrl3 = wx.TextCtrl(id=wxID_ABMBANCOSTEXTCTRL3,
              name='textCtrl3', parent=self, pos=wx.Point(88, 64),
              size=wx.Size(280, 21), style=0, value='')
        self.textCtrl3.Enable(False)
        self.textCtrl3.Bind(wx.EVT_KILL_FOCUS, self.OnMayusculas3)

        self.staticText4 = wx.StaticText(id=wxID_ABMBANCOSSTATICTEXT4,
              label='Telefono', name='staticText4', parent=self,
              pos=wx.Point(88, 88), size=wx.Size(42, 13), style=0)

        self.textCtrl4 = wx.TextCtrl(id=wxID_ABMBANCOSTEXTCTRL4,
              name='textCtrl4', parent=self, pos=wx.Point(88, 104),
              size=wx.Size(280, 21), style=0, value='')
        self.textCtrl4.Enable(False)
        self.textCtrl4.Bind(wx.EVT_KILL_FOCUS, self.OnMayusculas4)

        self.staticText5 = wx.StaticText(id=wxID_ABMBANCOSSTATICTEXT5,
              label='Contacto', name='staticText5', parent=self,
              pos=wx.Point(88, 128), size=wx.Size(44, 13), style=0)

        self.textCtrl5 = wx.TextCtrl(id=wxID_ABMBANCOSTEXTCTRL5,
              name='textCtrl5', parent=self, pos=wx.Point(88, 144),
              size=wx.Size(168, 21), style=0, value='')
        self.textCtrl5.Enable(False)
        self.textCtrl5.Bind(wx.EVT_KILL_FOCUS, self.OnMayusculas5)

        self.button1 = wx.Button(id=wxID_ABMBANCOSBUTTON1, label='Guardar',
              name='button1', parent=self, pos=wx.Point(16, 200),
              size=wx.Size(75, 23), style=0)
        self.button1.Bind(wx.EVT_BUTTON, self.OnGuardar,
              id=wxID_ABMBANCOSBUTTON1)

        self.button2 = wx.Button(id=wxID_ABMBANCOSBUTTON2, label='Salir',
              name='button2', parent=self, pos=wx.Point(292, 200),
              size=wx.Size(75, 23), style=0)
        self.button2.Bind(wx.EVT_BUTTON, self.OnSalir, id=wxID_ABMBANCOSBUTTON2)

    def __init__(self, parent):
        self._init_ctrls(parent)
        self.alta = False

    def OnKillFocus(self, event):
        if self.textCtrl1.GetLabel()=="":
            return
        codbanco = self.textCtrl1.GetLabel()
        sql = "SELECT * FROM chq_bancos WHERE codbanco='"+codbanco+"' "
        resultado = consultasBD.ordenCrudaDict(sql)
        if len(resultado)==0 or resultado==() or resultado==None:
            self.alta = True
            self.textCtrl2.Enable(True)
            self.textCtrl3.Enable(True)
            self.textCtrl4.Enable(True)
            self.textCtrl5.Enable(True)
            self.textCtrl2.SetFocus()
            return
        banco = resultado[0]
        self.textCtrl1.SetEditable(False)
        self.textCtrl2.Enable(True)
        self.textCtrl3.Enable(True)
        self.textCtrl4.Enable(True)
        self.textCtrl5.Enable(True)
        self.textCtrl2.SetLabel(banco["nombre"])
        self.textCtrl3.SetLabel(banco["direccion"])
        self.textCtrl4.SetLabel(banco["telefono"])
        self.textCtrl5.SetLabel(banco["contacto"])
        self.textCtrl2.SetFocus()

    def OnSalir(self, event):
        self.Close()

    def OnMayusculas2(self, event):
        self.textCtrl2.SetLabel(self.textCtrl2.GetLabel().upper())

    def OnMayusculas3(self, event):
        self.textCtrl3.SetLabel(self.textCtrl3.GetLabel().upper())

    def OnMayusculas4(self, event):
        self.textCtrl4.SetLabel(self.textCtrl4.GetLabel().upper())

    def OnMayusculas5(self, event):
        self.textCtrl5.SetLabel(self.textCtrl5.GetLabel().upper())

    def OnGuardar(self, event):
        codbanco = self.textCtrl1.GetLabel()
        if codbanco == "":
            utiles.mensaje(None,"Falta el codigo de banco")
            self.textCtrl1.SetFocus()
            return
        nombre = self.textCtrl2.GetLabel()
        if nombre == "":
            utiles.mensaje(None,"Falta el nombre del banco")
            self.textCtrl2.SetFocus()
            return
        direccion = self.textCtrl3.GetLabel()
        telefono = self.textCtrl4.GetLabel()
        contacto = self.textCtrl5.GetLabel()
        if self.alta:
            #alta
            print "Alta - nuevo Banco"
            r1 = "chq_bancos(codbanco,nombre,direccion,telefono,contacto)"
            r2 = "('"+codbanco+"','"+nombre+"','"+direccion+"','"+telefono+"','"+contacto+"')"
            consultaSQL = r1 + r2
            try:
                consultasBD.executaInsertSQL(self,r1,r2)
            except:
                utiles.mensaje(None,"Error al grabar el nuevo registro")
                return
        else:
            #actualizacion
            print "Actualizacion Bancos"
            tabla = "chq_bancos"
            campos="nombre='"+nombre+"',direccion='"+direccion+"',telefono='"+telefono+"',contacto='"+contacto+"'"
            condicion =  "codbanco='"+codbanco+"' \n"
            try:
                consultasBD.executaUpdateSQL(None,tabla,campos,condicion)
            except:
                utiles.mensaje(None,"Error al actualizar el registro")
                return
        utiles.mensaje(None,"Registro actualizado")
        self.OnSalir(None)
        